package structure.list;
import java.util.ArrayList;
import java.util.List;

/**
 * 有序子集合的fail-fast演示
 * @author fidel
 */
public class SubListFailFastDemo {
    public static void main(String[] args) {
        List<String> masterList = new ArrayList<>(6);
        masterList.add("i");
        masterList.add("ii");
        masterList.add("iii");
        masterList.add("iv");
        masterList.add("v");
        // 返回主有序集合中指定区段的元素作为有序子集合
        List<String> branchList = masterList.subList(0, 3);
        /*
         * 主有序集合调用subList方法返回有序子集合后，对有序子集合执行的读取/写入操作执行完毕前不能对主有序集合执行写入操作
         * 有序子集合对元素的写入操作也会影响主有序集合
         */
        branchList.clear();
        branchList.add("vi");
        System.out.println(masterList);
        branchList.add(1, "ix");
        branchList.remove("vi");
        branchList.add("vii");
        System.out.println(branchList);
        masterList.add("x");
        masterList.remove(0);
        System.out.println(masterList);
    }
}
